Language Support for Connector Abstractions
نویسندگان
چکیده
Software connectors are increasingly recognized as an important consideration in the design and implementation of object-oriented software systems. Connectors can be used to communicate across a distributed system, coordinate the activities of several objects, or adapt one object’s interface to the interface of another. Mainstream object-oriented languages, however, do not provide explicit support for connectors. As a result, connection code is intermingled with application code, making it difficult to understand, evolve, and reuse connection mechanisms. In this paper, we add language support for user-defined connectors to the ArchJava language. Our design enables a wide range of connector abstractions, including caches, events, streams, and remote method calls. Developers can describe both the run-time semantics of connectors and the typechecking semantics. The connector abstraction supported by ArchJava cleanly separates reusable connection code from application logic, making the semantics of connections more explicit and allowing engineers to easily change the connection mechanisms used in a program. We evaluate the expressiveness and the engineering benefits of our design in a case study applying ArchJava to the PlantCare ubiquitous computing application. 9667 words, excluding figures and references.
منابع مشابه
On the Modular Representation of Architectural Aspects
An architectural aspect is a concern that cuts across architecture modularity units and cannot be effectively modularized using the given abstractions of conventional Architecture Description Languages (ADLs). Dealing with crosscutting concerns is not a trivial task since they affect each other and the base architectural decomposition in multiple heterogeneous ways. The lack of ADL support for ...
متن کاملAspectual Connectors: Supporting the Seamless Integration of Aspects and ADLs
With the emergence of Aspect-Oriented Software Development (AOSD), there is a need to understand the adequacy ofArchitecture Description Languages (ADL) connection abstractions to capture the crosscutting nature of some architectural concerns. In this paper, we present Aspectual Connector (AC), a special kind of architectural connector, as the only necessary enhancement to an ADL in order to su...
متن کاملComponents, Contracts, and Connectors for the Unified Modelling Language UML
The lack of a component concept for the UML is widely acknowledged. Contracts between components can be the starting point for introducing components and component interconnections. Contracts between service providers and service users are formulated based on abstractions of action and operation behaviour using the preand postcondition technique. A valid contract allows to establish an intercon...
متن کاملCoordination of Active Objects by Means of Explicit Connectors
Although coordination of multiple activities is a fundamental goal of object-oriented concurrent programming languages, there is only limited support for its specification and abstraction at the language level. This leads to a mismatch between conceptional designs, using high-level abstractions, and the implementation, using the low-level coordination constructs. Often coordination is hard-wire...
متن کاملEmbedding Component Behavior DSLs into the MontiArcAutomaton ADL
Component & connector architecture description languages often need to capture application-specific or company-specific requirements. Therefore, it is a crucial prerequisite for their successful application to adapt the ADLs by customizing the languages themselves. Pervasive modeling with tailored ADLs can benefit from integration of DSLs to model-specific forms of component behavior. This requ...
متن کامل